package com.niguang.common.util;


import java.math.BigInteger;
import java.security.MessageDigest;

/**
 * md5加密
 */
public class EncryptionMD5 {


    /**
     * 使用32为加密
     *
     * @param str
     * @return
     */
    public static String getMD5(String str) {
        try {
            // 生成一个MD5加密计算摘要
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 计算md5函数
            md.update(str.getBytes());
            String md5 = new BigInteger(1, md.digest()).toString(16);
            return fillMD5(md5);
        } catch (Exception e) {
            throw new RuntimeException("MD5加密错误:" + e.getMessage(), e);
        }
    }

    public static String fillMD5(String md5) {
        return md5.length() == 32 ? md5 : fillMD5("0" + md5);
    }


    public static void main(String[] args) throws Exception {
        String str = "123456";
        String md5 = getMD5(str);
        System.out.println("加密:" + md5);
        System.out.println("length:" + md5.length());
    }

}
